/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package lab2;

import java.text.DateFormatSymbols;
import java.util.Locale;

/**
 *
 * @author Кирилл
 */
public class Helper {

    public static String[] getMonths() {
        Locale.setDefault(Locale.ENGLISH);
        String[] res = new String[12];
        DateFormatSymbols temp = new DateFormatSymbols();
        System.arraycopy(temp.getMonths(), 0, res, 0, 12);
        // метод getMonths() у DateFormatSymbols почему то возврашает массив строк, 
        // в котором 13 элементов, и последний из них - пустая строка
        return res;
    }

    public static String[] getYears(int startYear, int endYear) {
        String[] years = new String[endYear - startYear + 1];
        for (Integer i = startYear; i <= endYear; i++) {
            years[i - startYear] = i.toString();
        }
        return years;
    }

    public static String[] getDays(String month, boolean isLeap) {
        String[] days;
        Integer i = 1;
        switch (month) {
            case "January":
            case "Mart":
            case "May":
            case "July":
            case "August":
            case "October":
            case "December":
                days = new String[31];
                for (; i <= 31; i++) {
                    days[i - 1] = i.toString();
                }
                break;
            case "April":
            case "June":
            case "September":
            case "November":
                days = new String[30];
                for (; i <= 30; i++) {
                    days[i - 1] = i.toString();
                }
                break;
            default:
                if (isLeap) {
                    days = new String[29];
                    for (; i <= 29; i++) {
                        days[i - 1] = i.toString();
                    }

                } else {
                    days = new String[28];
                    for (; i <= 28; i++) {
                        days[i - 1] = i.toString();
                    }

                }
                break;
        }
        return days;
    }

    public static String editNumericText(String text, boolean isHour) { // для редактирования текста в формах для часов и минут в EditWindow
        String res = text;
        try {
            int i = Integer.parseInt(res);
            if (isHour && i > 23) {
                res = "23";
            } else {
                if (i > 59) {
                    res = "59";
                }
            }
        } catch (NumberFormatException ex) {
            try {
                try {
                    int temp = Integer.parseInt(res.substring(0, 1));

                    if (" ".equals(res.substring(1, 2))) {
                        res = "0" + temp;
                    } else {
                        throw new NumberFormatException();
                    }
                } catch (NumberFormatException ex1) {
                    int temp = Integer.parseInt(res.substring(1, 2));
                    if (" ".equals(res.substring(0, 1))) {
                        res = "0" + temp;
                    } else {
                        throw new NumberFormatException();
                    }
                }
            } catch (NumberFormatException ex2) {
                res = "00";
            }
        }
        return res;
    }
}
